#ifndef CAR_H
#define CAR_H

#include <iostream>
#include "./car_parts/BasePlate.h"
#include "./car_parts/AGX.h"
#include "./car_parts/BinocularCamera.h"
#include "./car_parts/Ladar.h"
#include "./car_parts/Gyroscope.h"
#include "./car_parts/LCD.h"
#include "./car_parts/Battery.h"

class Car
{
private:
    std::string id;                  // 编号
    BasePlate basePlate;             // 底盘
    AGX agx;                         // AGX套件
    BinocularCamera binocularCamera; // 双目摄像头
    Ladar ladar;                     // 激光雷达
    Gyroscope gyroscope;             // 陀螺仪
    LCD lcd;                         // 液晶显示屏
    Battery battery;                 // 电池模块
public:
    Car();
    Car(BasePlate basePlate, AGX agx, BinocularCamera binocularCamera, 
    Ladar ladar, Gyroscope gyroscope, LCD lcd, Battery battery);
    void setID(const std::string &id);
    void setBasePlateID(const std::string &id);
    // 屏幕输出
    void print();
    // 本地文件保存
    void save(const std::string &filename);

    void test(int order);
};

#endif // CAR_H